// export side_Neutral , side_Am , side_Ru , side_1 , side_2 , amici , am , cas ; export Burlak , Bystrov ; export Belkov , Gnyevko , Kirilenkova ; export Kovalyuk , Scholtze ; export Kuzmov ; export Karamazov , Petrovova , Gleb , Petrosyan ; export Lipshchin , Titov , Dolgov , Xavier ; export Oblukov , Kozlov , Kapitsova ; export Masha ; export Ostatni ; export Gladkov , GladkovFake ; export Rusove ; function load_char ( Ident ) ; begin
   0: LD_INT 0
   2: PPUSH
// if TestCharacters ( Ident ) then
   3: LD_VAR 0 1
   7: PPUSH
   8: CALL_OW 28
  12: IFFALSE 59
// begin Result = CreateCharacter ( Ident ) ;
  14: LD_ADDR_VAR 0 2
  18: PUSH
  19: LD_VAR 0 1
  23: PPUSH
  24: CALL_OW 34
  28: ST_TO_ADDR
// if IsDead ( Result ) then
  29: LD_VAR 0 2
  33: PPUSH
  34: CALL_OW 301
  38: IFFALSE 57
// begin DestroyUnit ( Result ) ;
  40: LD_VAR 0 2
  44: PPUSH
  45: CALL_OW 65
// Result = 0 ;
  49: LD_ADDR_VAR 0 2
  53: PUSH
  54: LD_INT 0
  56: ST_TO_ADDR
// end ; end else
  57: GO 74
// Result = NewCharacter ( Ident ) ;
  59: LD_ADDR_VAR 0 2
  63: PUSH
  64: LD_VAR 0 1
  68: PPUSH
  69: CALL_OW 25
  73: ST_TO_ADDR
// if Result then
  74: LD_VAR 0 2
  78: IFFALSE 92
// SetSide ( Result , 3 ) ;
  80: LD_VAR 0 2
  84: PPUSH
  85: LD_INT 3
  87: PPUSH
  88: CALL_OW 235
// end ;
  92: LD_VAR 0 2
  96: RET
// export Game_Type , amic ; export def_base_level , def_amount_of_people , def_initial_level , def_starting_resources , def_shipments_density , def_extra_oil_deposits , def_extra_sib_deposits , def_base_size , def_shared_vision , def_morale_flags , def_siberite_detection , def_amount_of_apemen , def_people_respawning , def_siberite_bomb , def_amount_of_tiger , def_narodnost_zapad , def_narodnost_sever , def_narodnost_vychot , def_narodnost_jich , def_warrior ; export is_depot , number_of_breastworks , number_of_people , initial_level , starting_crates , starting_resources , shipments_density , difficul , morale_decreasing_time , battle_flags_id , spawning_koef_of_tiger , spawning_koef_of_apemen , respawning_time_min , respawning_time_max , delete_siberite_deposits_locations ; export Side_Count , Team_Count , Player_Side , Player_Team , Side_Teams , Teams ; export Side_Positions , Side_Nations , Side_Names , Team_Names , Team_Game , Position_Nations ; export depot_def , breastworks_def , labs_def , factory_def , start_def , extra_oil_deposits_locations , def_max_sides ; export commander , allyside , def_technology ; var global_units , global_defined , soldiers_created , GameType , veh ; function init_map ; var i ; begin
  97: LD_INT 0
  99: PPUSH
 100: PPUSH
// start_def := [ [ 81 , 154 ] , [ 100 , 152 ] , [ 76 , 125 ] ] ;
 101: LD_ADDR_EXP 86
 105: PUSH
 106: LD_INT 81
 108: PUSH
 109: LD_INT 154
 111: PUSH
 112: EMPTY
 113: LIST
 114: LIST
 115: PUSH
 116: LD_INT 100
 118: PUSH
 119: LD_INT 152
 121: PUSH
 122: EMPTY
 123: LIST
 124: LIST
 125: PUSH
 126: LD_INT 76
 128: PUSH
 129: LD_INT 125
 131: PUSH
 132: EMPTY
 133: LIST
 134: LIST
 135: PUSH
 136: EMPTY
 137: LIST
 138: LIST
 139: LIST
 140: ST_TO_ADDR
// end ;
 141: LD_VAR 0 1
 145: RET
// function read_multiplayer_and_game_parameters ; var side , dep , br1 , br2 , br3 , un , i , g , k , r ; begin
 146: LD_INT 0
 148: PPUSH
 149: PPUSH
 150: PPUSH
 151: PPUSH
 152: PPUSH
 153: PPUSH
 154: PPUSH
 155: PPUSH
 156: PPUSH
 157: PPUSH
 158: PPUSH
// if MultiPlayer then
 159: LD_OWVAR 4
 163: IFFALSE 237
// begin Game_Type = mp_game_type ;
 165: LD_ADDR_EXP 33
 169: PUSH
 170: LD_OWVAR 6
 174: ST_TO_ADDR
// Player_Side = mp_player_side ;
 175: LD_ADDR_EXP 72
 179: PUSH
 180: LD_OWVAR 7
 184: ST_TO_ADDR
// Player_Team = mp_player_team ;
 185: LD_ADDR_EXP 73
 189: PUSH
 190: LD_OWVAR 8
 194: ST_TO_ADDR
// Side_Positions = mp_sides_positions ;
 195: LD_ADDR_EXP 76
 199: PUSH
 200: LD_OWVAR 17
 204: ST_TO_ADDR
// Side_Teams = mp_sides_teams ;
 205: LD_ADDR_EXP 74
 209: PUSH
 210: LD_OWVAR 15
 214: ST_TO_ADDR
// Side_Nations = mp_sides_nations ;
 215: LD_ADDR_EXP 77
 219: PUSH
 220: LD_OWVAR 16
 224: ST_TO_ADDR
// Teams = mp_teams ;
 225: LD_ADDR_EXP 75
 229: PUSH
 230: LD_OWVAR 12
 234: ST_TO_ADDR
// end else
 235: GO 396
// begin Game_Type = 1 ;
 237: LD_ADDR_EXP 33
 241: PUSH
 242: LD_INT 1
 244: ST_TO_ADDR
// Player_Side = 1 ;
 245: LD_ADDR_EXP 72
 249: PUSH
 250: LD_INT 1
 252: ST_TO_ADDR
// Player_Team = 1 ;
 253: LD_ADDR_EXP 73
 257: PUSH
 258: LD_INT 1
 260: ST_TO_ADDR
// Side_Positions = [ 1 , 0 , 3 , 2 , 0 , 0 , 0 , 0 ] ;
 261: LD_ADDR_EXP 76
 265: PUSH
 266: LD_INT 1
 268: PUSH
 269: LD_INT 0
 271: PUSH
 272: LD_INT 3
 274: PUSH
 275: LD_INT 2
 277: PUSH
 278: LD_INT 0
 280: PUSH
 281: LD_INT 0
 283: PUSH
 284: LD_INT 0
 286: PUSH
 287: LD_INT 0
 289: PUSH
 290: EMPTY
 291: LIST
 292: LIST
 293: LIST
 294: LIST
 295: LIST
 296: LIST
 297: LIST
 298: LIST
 299: ST_TO_ADDR
// Side_Teams = [ 1 , 0 , 1 , 1 , 0 , 0 , 0 , 0 ] ;
 300: LD_ADDR_EXP 74
 304: PUSH
 305: LD_INT 1
 307: PUSH
 308: LD_INT 0
 310: PUSH
 311: LD_INT 1
 313: PUSH
 314: LD_INT 1
 316: PUSH
 317: LD_INT 0
 319: PUSH
 320: LD_INT 0
 322: PUSH
 323: LD_INT 0
 325: PUSH
 326: LD_INT 0
 328: PUSH
 329: EMPTY
 330: LIST
 331: LIST
 332: LIST
 333: LIST
 334: LIST
 335: LIST
 336: LIST
 337: LIST
 338: ST_TO_ADDR
// Side_Nations = [ 1 , 0 , 1 , 1 , 0 , 0 , 0 , 0 ] ;
 339: LD_ADDR_EXP 77
 343: PUSH
 344: LD_INT 1
 346: PUSH
 347: LD_INT 0
 349: PUSH
 350: LD_INT 1
 352: PUSH
 353: LD_INT 1
 355: PUSH
 356: LD_INT 0
 358: PUSH
 359: LD_INT 0
 361: PUSH
 362: LD_INT 0
 364: PUSH
 365: LD_INT 0
 367: PUSH
 368: EMPTY
 369: LIST
 370: LIST
 371: LIST
 372: LIST
 373: LIST
 374: LIST
 375: LIST
 376: LIST
 377: ST_TO_ADDR
// Teams = [ [ 1 , 2 ] ] ;
 378: LD_ADDR_EXP 75
 382: PUSH
 383: LD_INT 1
 385: PUSH
 386: LD_INT 2
 388: PUSH
 389: EMPTY
 390: LIST
 391: LIST
 392: PUSH
 393: EMPTY
 394: LIST
 395: ST_TO_ADDR
// end ; Side_Count = ( Side_Positions diff [ 0 ] ) + 0 ;
 396: LD_ADDR_EXP 70
 400: PUSH
 401: LD_EXP 76
 405: PUSH
 406: LD_INT 0
 408: PUSH
 409: EMPTY
 410: LIST
 411: DIFF
 412: PUSH
 413: LD_INT 0
 415: PLUS
 416: ST_TO_ADDR
// Team_Count = ( Side_Teams diff [ 0 ] ) + 0 ;
 417: LD_ADDR_EXP 71
 421: PUSH
 422: LD_EXP 74
 426: PUSH
 427: LD_INT 0
 429: PUSH
 430: EMPTY
 431: LIST
 432: DIFF
 433: PUSH
 434: LD_INT 0
 436: PLUS
 437: ST_TO_ADDR
// if MultiPlayer then
 438: LD_OWVAR 4
 442: IFFALSE 550
// begin def_amount_of_people = GetMultiplayerSetting ( 1 ) ;
 444: LD_ADDR_EXP 36
 448: PUSH
 449: LD_INT 1
 451: PPUSH
 452: CALL_OW 426
 456: ST_TO_ADDR
// def_initial_level = GetMultiplayerSetting ( 2 ) ;
 457: LD_ADDR_EXP 37
 461: PUSH
 462: LD_INT 2
 464: PPUSH
 465: CALL_OW 426
 469: ST_TO_ADDR
// def_starting_resources = GetMultiplayerSetting ( 3 ) ;
 470: LD_ADDR_EXP 38
 474: PUSH
 475: LD_INT 3
 477: PPUSH
 478: CALL_OW 426
 482: ST_TO_ADDR
// def_shipments_density = GetMultiplayerSetting ( 4 ) ;
 483: LD_ADDR_EXP 39
 487: PUSH
 488: LD_INT 4
 490: PPUSH
 491: CALL_OW 426
 495: ST_TO_ADDR
// def_extra_oil_deposits = GetMultiplayerSetting ( 5 ) ;
 496: LD_ADDR_EXP 40
 500: PUSH
 501: LD_INT 5
 503: PPUSH
 504: CALL_OW 426
 508: ST_TO_ADDR
// difficul = GetMultiplayerSetting ( 6 ) ;
 509: LD_ADDR_EXP 62
 513: PUSH
 514: LD_INT 6
 516: PPUSH
 517: CALL_OW 426
 521: ST_TO_ADDR
// def_shared_vision = GetMultiplayerSetting ( 10 ) ;
 522: LD_ADDR_EXP 43
 526: PUSH
 527: LD_INT 10
 529: PPUSH
 530: CALL_OW 426
 534: ST_TO_ADDR
// def_siberite_detection = GetMultiplayerSetting ( 12 ) ;
 535: LD_ADDR_EXP 45
 539: PUSH
 540: LD_INT 12
 542: PPUSH
 543: CALL_OW 426
 547: ST_TO_ADDR
// end else
 548: GO 598
// begin def_amount_of_people = 3 ;
 550: LD_ADDR_EXP 36
 554: PUSH
 555: LD_INT 3
 557: ST_TO_ADDR
// def_initial_level = 2 ;
 558: LD_ADDR_EXP 37
 562: PUSH
 563: LD_INT 2
 565: ST_TO_ADDR
// def_starting_resources = 2 ;
 566: LD_ADDR_EXP 38
 570: PUSH
 571: LD_INT 2
 573: ST_TO_ADDR
// difficul = 3 ;
 574: LD_ADDR_EXP 62
 578: PUSH
 579: LD_INT 3
 581: ST_TO_ADDR
// def_shared_vision = 1 ;
 582: LD_ADDR_EXP 43
 586: PUSH
 587: LD_INT 1
 589: ST_TO_ADDR
// def_siberite_detection = 1 ;
 590: LD_ADDR_EXP 45
 594: PUSH
 595: LD_INT 1
 597: ST_TO_ADDR
// end ; number_of_people = [ 6 , 9 , 12 , 15 , 18 , 21 , 24 ] [ def_amount_of_people + 1 ] ;
 598: LD_ADDR_EXP 57
 602: PUSH
 603: LD_INT 6
 605: PUSH
 606: LD_INT 9
 608: PUSH
 609: LD_INT 12
 611: PUSH
 612: LD_INT 15
 614: PUSH
 615: LD_INT 18
 617: PUSH
 618: LD_INT 21
 620: PUSH
 621: LD_INT 24
 623: PUSH
 624: EMPTY
 625: LIST
 626: LIST
 627: LIST
 628: LIST
 629: LIST
 630: LIST
 631: LIST
 632: PUSH
 633: LD_EXP 36
 637: PUSH
 638: LD_INT 1
 640: PLUS
 641: ARRAY
 642: ST_TO_ADDR
// initial_level = [ 2 , 3 , 4 , 5 ] [ def_initial_level + 1 ] ;
 643: LD_ADDR_EXP 58
 647: PUSH
 648: LD_INT 2
 650: PUSH
 651: LD_INT 3
 653: PUSH
 654: LD_INT 4
 656: PUSH
 657: LD_INT 5
 659: PUSH
 660: EMPTY
 661: LIST
 662: LIST
 663: LIST
 664: LIST
 665: PUSH
 666: LD_EXP 37
 670: PUSH
 671: LD_INT 1
 673: PLUS
 674: ARRAY
 675: ST_TO_ADDR
// starting_resources = [ [ 0 , 0 , 0 ] , [ 30 , 0 , 0 ] , [ 50 , 20 , 0 ] , [ 80 , 40 , 20 ] ] [ def_starting_resources + 1 ] ;
 676: LD_ADDR_EXP 60
 680: PUSH
 681: LD_INT 0
 683: PUSH
 684: LD_INT 0
 686: PUSH
 687: LD_INT 0
 689: PUSH
 690: EMPTY
 691: LIST
 692: LIST
 693: LIST
 694: PUSH
 695: LD_INT 30
 697: PUSH
 698: LD_INT 0
 700: PUSH
 701: LD_INT 0
 703: PUSH
 704: EMPTY
 705: LIST
 706: LIST
 707: LIST
 708: PUSH
 709: LD_INT 50
 711: PUSH
 712: LD_INT 20
 714: PUSH
 715: LD_INT 0
 717: PUSH
 718: EMPTY
 719: LIST
 720: LIST
 721: LIST
 722: PUSH
 723: LD_INT 80
 725: PUSH
 726: LD_INT 40
 728: PUSH
 729: LD_INT 20
 731: PUSH
 732: EMPTY
 733: LIST
 734: LIST
 735: LIST
 736: PUSH
 737: EMPTY
 738: LIST
 739: LIST
 740: LIST
 741: LIST
 742: PUSH
 743: LD_EXP 38
 747: PUSH
 748: LD_INT 1
 750: PLUS
 751: ARRAY
 752: ST_TO_ADDR
// starting_crates = [ [ 10 ] , [ 7 , 14 ] , [ 6 , 12 , 18 ] , [ 5 , 10 , 15 , 20 ] ] [ def_starting_resources + 1 ] ;
 753: LD_ADDR_EXP 59
 757: PUSH
 758: LD_INT 10
 760: PUSH
 761: EMPTY
 762: LIST
 763: PUSH
 764: LD_INT 7
 766: PUSH
 767: LD_INT 14
 769: PUSH
 770: EMPTY
 771: LIST
 772: LIST
 773: PUSH
 774: LD_INT 6
 776: PUSH
 777: LD_INT 12
 779: PUSH
 780: LD_INT 18
 782: PUSH
 783: EMPTY
 784: LIST
 785: LIST
 786: LIST
 787: PUSH
 788: LD_INT 5
 790: PUSH
 791: LD_INT 10
 793: PUSH
 794: LD_INT 15
 796: PUSH
 797: LD_INT 20
 799: PUSH
 800: EMPTY
 801: LIST
 802: LIST
 803: LIST
 804: LIST
 805: PUSH
 806: EMPTY
 807: LIST
 808: LIST
 809: LIST
 810: LIST
 811: PUSH
 812: LD_EXP 38
 816: PUSH
 817: LD_INT 1
 819: PLUS
 820: ARRAY
 821: ST_TO_ADDR
// difficulty = [ difficul + 1 ] ;
 822: LD_ADDR_OWVAR 67
 826: PUSH
 827: LD_EXP 62
 831: PUSH
 832: LD_INT 1
 834: PLUS
 835: PUSH
 836: EMPTY
 837: LIST
 838: ST_TO_ADDR
// GameType = Game_Type ;
 839: LD_ADDR_LOC 4
 843: PUSH
 844: LD_EXP 33
 848: ST_TO_ADDR
// end ;
 849: LD_VAR 0 1
 853: RET
// function set_shared_visions_and_alliances ; var i , j ; begin
 854: LD_INT 0
 856: PPUSH
 857: PPUSH
 858: PPUSH
// Team_Game := 0 ;
 859: LD_ADDR_EXP 80
 863: PUSH
 864: LD_INT 0
 866: ST_TO_ADDR
// for i = 1 to 8 do
 867: LD_ADDR_VAR 0 2
 871: PUSH
 872: DOUBLE
 873: LD_INT 1
 875: DEC
 876: ST_TO_ADDR
 877: LD_INT 8
 879: PUSH
 880: FOR_TO
 881: IFFALSE 907
// Team_Game := Team_Game + Side_Teams [ i ] ;
 883: LD_ADDR_EXP 80
 887: PUSH
 888: LD_EXP 80
 892: PUSH
 893: LD_EXP 74
 897: PUSH
 898: LD_VAR 0 2
 902: ARRAY
 903: PLUS
 904: ST_TO_ADDR
 905: GO 880
 907: POP
 908: POP
// if not Team_Game then
 909: LD_EXP 80
 913: NOT
 914: IFFALSE 926
// Team_Game := false else
 916: LD_ADDR_EXP 80
 920: PUSH
 921: LD_INT 0
 923: ST_TO_ADDR
 924: GO 934
// Team_Game := true ;
 926: LD_ADDR_EXP 80
 930: PUSH
 931: LD_INT 1
 933: ST_TO_ADDR
// if not Team_Game then
 934: LD_EXP 80
 938: NOT
 939: IFFALSE 1037
// begin for i = 1 to 8 do
 941: LD_ADDR_VAR 0 2
 945: PUSH
 946: DOUBLE
 947: LD_INT 1
 949: DEC
 950: ST_TO_ADDR
 951: LD_INT 8
 953: PUSH
 954: FOR_TO
 955: IFFALSE 1033
// for j = 1 to 8 do
 957: LD_ADDR_VAR 0 3
 961: PUSH
 962: DOUBLE
 963: LD_INT 1
 965: DEC
 966: ST_TO_ADDR
 967: LD_INT 8
 969: PUSH
 970: FOR_TO
 971: IFFALSE 1029
// if i <> j then
 973: LD_VAR 0 2
 977: PUSH
 978: LD_VAR 0 3
 982: NONEQUAL
 983: IFFALSE 1007
// SetAttitude ( i , j , att_neutral , true ) else
 985: LD_VAR 0 2
 989: PPUSH
 990: LD_VAR 0 3
 994: PPUSH
 995: LD_INT 0
 997: PPUSH
 998: LD_INT 1
1000: PPUSH
1001: CALL_OW 80
1005: GO 1027
// SetAttitude ( i , j , att_friend , true ) ;
1007: LD_VAR 0 2
1011: PPUSH
1012: LD_VAR 0 3
1016: PPUSH
1017: LD_INT 1
1019: PPUSH
1020: LD_INT 1
1022: PPUSH
1023: CALL_OW 80
1027: GO 970
1029: POP
1030: POP
1031: GO 954
1033: POP
1034: POP
// end else
1035: GO 1212
// begin if def_shared_vision then
1037: LD_EXP 43
1041: IFFALSE 1106
// begin for i in Teams do
1043: LD_ADDR_VAR 0 2
1047: PUSH
1048: LD_EXP 75
1052: PUSH
1053: FOR_IN
1054: IFFALSE 1104
// for j = 2 to i do
1056: LD_ADDR_VAR 0 3
1060: PUSH
1061: DOUBLE
1062: LD_INT 2
1064: DEC
1065: ST_TO_ADDR
1066: LD_VAR 0 2
1070: PUSH
1071: FOR_TO
1072: IFFALSE 1100
// ChangeSideFog ( i [ j ] , i [ 1 ] ) ;
1074: LD_VAR 0 2
1078: PUSH
1079: LD_VAR 0 3
1083: ARRAY
1084: PPUSH
1085: LD_VAR 0 2
1089: PUSH
1090: LD_INT 1
1092: ARRAY
1093: PPUSH
1094: CALL_OW 343
1098: GO 1071
1100: POP
1101: POP
1102: GO 1053
1104: POP
1105: POP
// end ; for i = 1 to 8 do
1106: LD_ADDR_VAR 0 2
1110: PUSH
1111: DOUBLE
1112: LD_INT 1
1114: DEC
1115: ST_TO_ADDR
1116: LD_INT 8
1118: PUSH
1119: FOR_TO
1120: IFFALSE 1210
// for j = 1 to 8 do
1122: LD_ADDR_VAR 0 3
1126: PUSH
1127: DOUBLE
1128: LD_INT 1
1130: DEC
1131: ST_TO_ADDR
1132: LD_INT 8
1134: PUSH
1135: FOR_TO
1136: IFFALSE 1206
// if Side_Teams [ i ] = Side_Teams [ j ] then
1138: LD_EXP 74
1142: PUSH
1143: LD_VAR 0 2
1147: ARRAY
1148: PUSH
1149: LD_EXP 74
1153: PUSH
1154: LD_VAR 0 3
1158: ARRAY
1159: EQUAL
1160: IFFALSE 1184
// SetAttitude ( i , j , att_friend , true ) else
1162: LD_VAR 0 2
1166: PPUSH
1167: LD_VAR 0 3
1171: PPUSH
1172: LD_INT 1
1174: PPUSH
1175: LD_INT 1
1177: PPUSH
1178: CALL_OW 80
1182: GO 1204
// SetAttitude ( i , j , att_enemy , true ) ;
1184: LD_VAR 0 2
1188: PPUSH
1189: LD_VAR 0 3
1193: PPUSH
1194: LD_INT 2
1196: PPUSH
1197: LD_INT 1
1199: PPUSH
1200: CALL_OW 80
1204: GO 1135
1206: POP
1207: POP
1208: GO 1119
1210: POP
1211: POP
// end ; end ;
1212: LD_VAR 0 1
1216: RET
// function prepare_people ( side , count , cl , x , y , r , var commander ) ; var i , j , un ; begin
1217: LD_INT 0
1219: PPUSH
1220: PPUSH
1221: PPUSH
1222: PPUSH
// result := [ ] ;
1223: LD_ADDR_VAR 0 8
1227: PUSH
1228: EMPTY
1229: ST_TO_ADDR
// for i := 1 to count do
1230: LD_ADDR_VAR 0 9
1234: PUSH
1235: DOUBLE
1236: LD_INT 1
1238: DEC
1239: ST_TO_ADDR
1240: LD_VAR 0 2
1244: PUSH
1245: FOR_TO
1246: IFFALSE 1640
// begin uc_direction := Rand ( 0 , 5 ) ;
1248: LD_ADDR_OWVAR 24
1252: PUSH
1253: LD_INT 0
1255: PPUSH
1256: LD_INT 5
1258: PPUSH
1259: CALL_OW 12
1263: ST_TO_ADDR
// if commander then
1264: LD_FROM_VAR 0 7
1268: IFFALSE 1377
// begin hc_name := mp_sides_players_names [ side ] ;
1270: LD_ADDR_OWVAR 26
1274: PUSH
1275: LD_OWVAR 19
1279: PUSH
1280: LD_VAR 0 1
1284: ARRAY
1285: ST_TO_ADDR
// PrepareHuman ( Rand ( 1 , 2 ) , cl , initial_level + 2 ) ;
1286: LD_INT 1
1288: PPUSH
1289: LD_INT 2
1291: PPUSH
1292: CALL_OW 12
1296: PPUSH
1297: LD_VAR 0 3
1301: PPUSH
1302: LD_EXP 58
1306: PUSH
1307: LD_INT 2
1309: PLUS
1310: PPUSH
1311: CALL_OW 380
// hc_importance := 105 ;
1315: LD_ADDR_OWVAR 32
1319: PUSH
1320: LD_INT 105
1322: ST_TO_ADDR
// commander := false ;
1323: LD_VAR 0 7
1327: PUSH
1328: LD_INT 0
1330: ST_TO_ADDR
// if Multiplayer then
1331: LD_OWVAR 4
1335: IFFALSE 1375
// begin hc_gallery := MULTIAVATARS ;
1337: LD_ADDR_OWVAR 33
1341: PUSH
1342: LD_STRING MULTIAVATARS
1344: ST_TO_ADDR
// hc_face_number := Multiplayer_GetPlayerSideNum ( Side ) ;
1345: LD_ADDR_OWVAR 34
1349: PUSH
1350: LD_VAR 0 1
1354: PPUSH
1355: CALL_OW 525
1359: ST_TO_ADDR
// hc_sex := Multiplayer_GetPlayerSex ( Side ) ;
1360: LD_ADDR_OWVAR 27
1364: PUSH
1365: LD_VAR 0 1
1369: PPUSH
1370: CALL_OW 526
1374: ST_TO_ADDR
// end ; end else
1375: GO 1440
// begin hc_name :=  ;
1377: LD_ADDR_OWVAR 26
1381: PUSH
1382: LD_STRING 
1384: ST_TO_ADDR
// PrepareHuman ( rand ( 1 , 2 ) , cl , initial_level ) ;
1385: LD_INT 1
1387: PPUSH
1388: LD_INT 2
1390: PPUSH
1391: CALL_OW 12
1395: PPUSH
1396: LD_VAR 0 3
1400: PPUSH
1401: LD_EXP 58
1405: PPUSH
1406: CALL_OW 380
// hc_importance := 0 ;
1410: LD_ADDR_OWVAR 32
1414: PUSH
1415: LD_INT 0
1417: ST_TO_ADDR
// if Multiplayer then
1418: LD_OWVAR 4
1422: IFFALSE 1440
// begin hc_gallery :=  ;
1424: LD_ADDR_OWVAR 33
1428: PUSH
1429: LD_STRING 
1431: ST_TO_ADDR
// hc_face_number := 0 ;
1432: LD_ADDR_OWVAR 34
1436: PUSH
1437: LD_INT 0
1439: ST_TO_ADDR
// end ; end ; un := CreateHuman ;
1440: LD_ADDR_VAR 0 11
1444: PUSH
1445: CALL_OW 44
1449: ST_TO_ADDR
// if global_defined then
1450: LD_LOC 2
1454: IFFALSE 1592
// begin j := i ;
1456: LD_ADDR_VAR 0 10
1460: PUSH
1461: LD_VAR 0 9
1465: ST_TO_ADDR
// if cl = class_soldier then
1466: LD_VAR 0 3
1470: PUSH
1471: LD_INT 1
1473: EQUAL
1474: IFFALSE 1492
// j := i + soldiers_created ;
1476: LD_ADDR_VAR 0 10
1480: PUSH
1481: LD_VAR 0 9
1485: PUSH
1486: LD_LOC 3
1490: PLUS
1491: ST_TO_ADDR
// CopySkills ( global_units [ cl ] [ j ] , un ) ;
1492: LD_LOC 1
1496: PUSH
1497: LD_VAR 0 3
1501: ARRAY
1502: PUSH
1503: LD_VAR 0 10
1507: ARRAY
1508: PPUSH
1509: LD_VAR 0 11
1513: PPUSH
1514: CALL_OW 510
// SetAttr ( un , attr_speed , GetAttr ( global_units [ cl ] [ j ] , attr_speed ) ) ;
1518: LD_VAR 0 11
1522: PPUSH
1523: LD_INT 2
1525: PPUSH
1526: LD_LOC 1
1530: PUSH
1531: LD_VAR 0 3
1535: ARRAY
1536: PUSH
1537: LD_VAR 0 10
1541: ARRAY
1542: PPUSH
1543: LD_INT 2
1545: PPUSH
1546: CALL_OW 260
1550: PPUSH
1551: CALL_OW 239
// SetAttr ( un , attr_stamina , GetAttr ( global_units [ cl ] [ j ] , attr_stamina ) ) ;
1555: LD_VAR 0 11
1559: PPUSH
1560: LD_INT 1
1562: PPUSH
1563: LD_LOC 1
1567: PUSH
1568: LD_VAR 0 3
1572: ARRAY
1573: PUSH
1574: LD_VAR 0 10
1578: ARRAY
1579: PPUSH
1580: LD_INT 1
1582: PPUSH
1583: CALL_OW 260
1587: PPUSH
1588: CALL_OW 239
// end ; PlaceUnitXYR ( un , x , y , r , false ) ;
1592: LD_VAR 0 11
1596: PPUSH
1597: LD_VAR 0 4
1601: PPUSH
1602: LD_VAR 0 5
1606: PPUSH
1607: LD_VAR 0 6
1611: PPUSH
1612: LD_INT 0
1614: PPUSH
1615: CALL_OW 50
// result := result ^ [ un ] ;
1619: LD_ADDR_VAR 0 8
1623: PUSH
1624: LD_VAR 0 8
1628: PUSH
1629: LD_VAR 0 11
1633: PUSH
1634: EMPTY
1635: LIST
1636: ADD
1637: ST_TO_ADDR
// end ;
1638: GO 1245
1640: POP
1641: POP
// if not global_defined then
1642: LD_LOC 2
1646: NOT
1647: IFFALSE 1709
// if cl = class_soldier and global_units then
1649: LD_VAR 0 3
1653: PUSH
1654: LD_INT 1
1656: EQUAL
1657: PUSH
1658: LD_LOC 1
1662: AND
1663: IFFALSE 1690
// global_units := [ global_units [ 1 ] ^ result ] else
1665: LD_ADDR_LOC 1
1669: PUSH
1670: LD_LOC 1
1674: PUSH
1675: LD_INT 1
1677: ARRAY
1678: PUSH
1679: LD_VAR 0 8
1683: ADD
1684: PUSH
1685: EMPTY
1686: LIST
1687: ST_TO_ADDR
1688: GO 1709
// global_units := global_units ^ [ result ] end ;
1690: LD_ADDR_LOC 1
1694: PUSH
1695: LD_LOC 1
1699: PUSH
1700: LD_VAR 0 8
1704: PUSH
1705: EMPTY
1706: LIST
1707: ADD
1708: ST_TO_ADDR
1709: LD_VAR 0 8
1713: RET
// function prepare_side ( side , pos , nation ) ; var x , y , i , r , k , sol , br , dep , des , neng , nsci , nmech , nsol ; begin
1714: LD_INT 0
1716: PPUSH
1717: PPUSH
1718: PPUSH
1719: PPUSH
1720: PPUSH
1721: PPUSH
1722: PPUSH
1723: PPUSH
1724: PPUSH
1725: PPUSH
1726: PPUSH
1727: PPUSH
1728: PPUSH
1729: PPUSH
// pos := Side_Positions [ side ] ;
1730: LD_ADDR_VAR 0 2
1734: PUSH
1735: LD_EXP 76
1739: PUSH
1740: LD_VAR 0 1
1744: ARRAY
1745: ST_TO_ADDR
// uc_nation := Side_Nations [ side ] ;
1746: LD_ADDR_OWVAR 21
1750: PUSH
1751: LD_EXP 77
1755: PUSH
1756: LD_VAR 0 1
1760: ARRAY
1761: ST_TO_ADDR
// uc_side := side ;
1762: LD_ADDR_OWVAR 20
1766: PUSH
1767: LD_VAR 0 1
1771: ST_TO_ADDR
// x := start_def [ pos ] [ 1 ] ;
1772: LD_ADDR_VAR 0 5
1776: PUSH
1777: LD_EXP 86
1781: PUSH
1782: LD_VAR 0 2
1786: ARRAY
1787: PUSH
1788: LD_INT 1
1790: ARRAY
1791: ST_TO_ADDR
// y := start_def [ pos ] [ 2 ] ;
1792: LD_ADDR_VAR 0 6
1796: PUSH
1797: LD_EXP 86
1801: PUSH
1802: LD_VAR 0 2
1806: ARRAY
1807: PUSH
1808: LD_INT 2
1810: ARRAY
1811: ST_TO_ADDR
// for r in starting_crates do
1812: LD_ADDR_VAR 0 8
1816: PUSH
1817: LD_EXP 59
1821: PUSH
1822: FOR_IN
1823: IFFALSE 1855
// CreateResourcesXYR ( mat_cans , 5 , x , y , r , false ) ;
1825: LD_INT 1
1827: PPUSH
1828: LD_INT 5
1830: PPUSH
1831: LD_VAR 0 5
1835: PPUSH
1836: LD_VAR 0 6
1840: PPUSH
1841: LD_VAR 0 8
1845: PPUSH
1846: LD_INT 0
1848: PPUSH
1849: CALL_OW 60
1853: GO 1822
1855: POP
1856: POP
// neng := number_of_people ;
1857: LD_ADDR_VAR 0 14
1861: PUSH
1862: LD_EXP 57
1866: ST_TO_ADDR
// if nsol < neng div 4 then
1867: LD_VAR 0 17
1871: PUSH
1872: LD_VAR 0 14
1876: PUSH
1877: LD_INT 4
1879: DIV
1880: LESS
1881: IFFALSE 1897
// nsol := neng div 4 ;
1883: LD_ADDR_VAR 0 17
1887: PUSH
1888: LD_VAR 0 14
1892: PUSH
1893: LD_INT 4
1895: DIV
1896: ST_TO_ADDR
// neng := neng - nsol ;
1897: LD_ADDR_VAR 0 14
1901: PUSH
1902: LD_VAR 0 14
1906: PUSH
1907: LD_VAR 0 17
1911: MINUS
1912: ST_TO_ADDR
// nsci := neng div 3 ;
1913: LD_ADDR_VAR 0 15
1917: PUSH
1918: LD_VAR 0 14
1922: PUSH
1923: LD_INT 3
1925: DIV
1926: ST_TO_ADDR
// if nsci < 1 then
1927: LD_VAR 0 15
1931: PUSH
1932: LD_INT 1
1934: LESS
1935: IFFALSE 1945
// nsci := 1 ;
1937: LD_ADDR_VAR 0 15
1941: PUSH
1942: LD_INT 1
1944: ST_TO_ADDR
// neng := neng - nsci ;
1945: LD_ADDR_VAR 0 14
1949: PUSH
1950: LD_VAR 0 14
1954: PUSH
1955: LD_VAR 0 15
1959: MINUS
1960: ST_TO_ADDR
// nmech := 0 ;
1961: LD_ADDR_VAR 0 16
1965: PUSH
1966: LD_INT 0
1968: ST_TO_ADDR
// neng := neng - nmech ;
1969: LD_ADDR_VAR 0 14
1973: PUSH
1974: LD_VAR 0 14
1978: PUSH
1979: LD_VAR 0 16
1983: MINUS
1984: ST_TO_ADDR
// if neng < 1 then
1985: LD_VAR 0 14
1989: PUSH
1990: LD_INT 1
1992: LESS
1993: IFFALSE 2003
// neng := 1 ;
1995: LD_ADDR_VAR 0 14
1999: PUSH
2000: LD_INT 1
2002: ST_TO_ADDR
// commander := true ;
2003: LD_ADDR_EXP 89
2007: PUSH
2008: LD_INT 1
2010: ST_TO_ADDR
// x := start_def [ pos ] [ 1 ] ;
2011: LD_ADDR_VAR 0 5
2015: PUSH
2016: LD_EXP 86
2020: PUSH
2021: LD_VAR 0 2
2025: ARRAY
2026: PUSH
2027: LD_INT 1
2029: ARRAY
2030: ST_TO_ADDR
// y := start_def [ pos ] [ 2 ] ;
2031: LD_ADDR_VAR 0 6
2035: PUSH
2036: LD_EXP 86
2040: PUSH
2041: LD_VAR 0 2
2045: ARRAY
2046: PUSH
2047: LD_INT 2
2049: ARRAY
2050: ST_TO_ADDR
// prepare_people ( side , neng , class_soldier , x , y , 5 , commander ) ;
2051: LD_VAR 0 1
2055: PPUSH
2056: LD_VAR 0 14
2060: PPUSH
2061: LD_INT 1
2063: PPUSH
2064: LD_VAR 0 5
2068: PPUSH
2069: LD_VAR 0 6
2073: PPUSH
2074: LD_INT 5
2076: PPUSH
2077: LD_ADDR_EXP 89
2081: PPUSH
2082: CALL 1217 0 7
// prepare_people ( side , nsol , class_engineer , x , y , 5 , commander ) ;
2086: LD_VAR 0 1
2090: PPUSH
2091: LD_VAR 0 17
2095: PPUSH
2096: LD_INT 2
2098: PPUSH
2099: LD_VAR 0 5
2103: PPUSH
2104: LD_VAR 0 6
2108: PPUSH
2109: LD_INT 5
2111: PPUSH
2112: LD_ADDR_EXP 89
2116: PPUSH
2117: CALL 1217 0 7
// prepare_people ( side , nmech , class_mechanic , x , y , 5 , commander ) ;
2121: LD_VAR 0 1
2125: PPUSH
2126: LD_VAR 0 16
2130: PPUSH
2131: LD_INT 3
2133: PPUSH
2134: LD_VAR 0 5
2138: PPUSH
2139: LD_VAR 0 6
2143: PPUSH
2144: LD_INT 5
2146: PPUSH
2147: LD_ADDR_EXP 89
2151: PPUSH
2152: CALL 1217 0 7
// prepare_people ( side , nsci , class_scientistic , x , y , 5 , commander ) ;
2156: LD_VAR 0 1
2160: PPUSH
2161: LD_VAR 0 15
2165: PPUSH
2166: LD_INT 4
2168: PPUSH
2169: LD_VAR 0 5
2173: PPUSH
2174: LD_VAR 0 6
2178: PPUSH
2179: LD_INT 5
2181: PPUSH
2182: LD_ADDR_EXP 89
2186: PPUSH
2187: CALL 1217 0 7
// if not global_defined then
2191: LD_LOC 2
2195: NOT
2196: IFFALSE 2206
// global_defined := true ;
2198: LD_ADDR_LOC 2
2202: PUSH
2203: LD_INT 1
2205: ST_TO_ADDR
// if def_siberite_detection then
2206: LD_EXP 45
2210: IFFALSE 2227
// SetTech ( tech_SibDet , side , state_researched ) ;
2212: LD_INT 20
2214: PPUSH
2215: LD_VAR 0 1
2219: PPUSH
2220: LD_INT 2
2222: PPUSH
2223: CALL_OW 322
// end ;
2227: LD_VAR 0 4
2231: RET
// function prepare_sides ; var i , orig , pos ; begin
2232: LD_INT 0
2234: PPUSH
2235: PPUSH
2236: PPUSH
2237: PPUSH
// global_units := [ ] ;
2238: LD_ADDR_LOC 1
2242: PUSH
2243: EMPTY
2244: ST_TO_ADDR
// global_defined := false ;
2245: LD_ADDR_LOC 2
2249: PUSH
2250: LD_INT 0
2252: ST_TO_ADDR
// for i := 1 to 8 do
2253: LD_ADDR_VAR 0 2
2257: PUSH
2258: DOUBLE
2259: LD_INT 1
2261: DEC
2262: ST_TO_ADDR
2263: LD_INT 8
2265: PUSH
2266: FOR_TO
2267: IFFALSE 2324
// if Side_Positions [ i ] then
2269: LD_EXP 76
2273: PUSH
2274: LD_VAR 0 2
2278: ARRAY
2279: IFFALSE 2322
// begin pos := Side_Positions [ i ] ;
2281: LD_ADDR_VAR 0 4
2285: PUSH
2286: LD_EXP 76
2290: PUSH
2291: LD_VAR 0 2
2295: ARRAY
2296: ST_TO_ADDR
// prepare_side ( i , pos , Position_Nations [ pos ] ) ;
2297: LD_VAR 0 2
2301: PPUSH
2302: LD_VAR 0 4
2306: PPUSH
2307: LD_EXP 81
2311: PUSH
2312: LD_VAR 0 4
2316: ARRAY
2317: PPUSH
2318: CALL 1714 0 3
// end ;
2322: GO 2266
2324: POP
2325: POP
// end ;
2326: LD_VAR 0 1
2330: RET
// function prepare_specfog ; var i , x ; begin
2331: LD_INT 0
2333: PPUSH
2334: PPUSH
2335: PPUSH
// if IAmSpec then
2336: CALL_OW 531
2340: IFFALSE 2346
// TurnFogOff ;
2342: CALL_OW 537
// end ;
2346: LD_VAR 0 1
2350: RET
// starting var list , k ; begin cas = 60 60$00 ;
2351: LD_ADDR_EXP 8
2355: PUSH
2356: LD_INT 126000
2358: ST_TO_ADDR
// mp_selectmsg := true ;
2359: LD_ADDR_OWVAR 13
2363: PUSH
2364: LD_INT 1
2366: ST_TO_ADDR
// Amici = FilterallUnits ( [ [ f_nation , nation_american ] , [ f_side , 4 ] ] ) ;
2367: LD_ADDR_EXP 6
2371: PUSH
2372: LD_INT 23
2374: PUSH
2375: LD_INT 1
2377: PUSH
2378: EMPTY
2379: LIST
2380: LIST
2381: PUSH
2382: LD_INT 22
2384: PUSH
2385: LD_INT 4
2387: PUSH
2388: EMPTY
2389: LIST
2390: LIST
2391: PUSH
2392: EMPTY
2393: LIST
2394: LIST
2395: PPUSH
2396: CALL_OW 69
2400: ST_TO_ADDR
// read_multiplayer_and_game_parameters ;
2401: CALL 146 0 0
// if not Side_Positions [ 2 ] > 0 then
2405: LD_EXP 76
2409: PUSH
2410: LD_INT 2
2412: ARRAY
2413: PUSH
2414: LD_INT 0
2416: GREATER
2417: NOT
2418: IFFALSE 2430
// begin am = 1 ;
2420: LD_ADDR_EXP 7
2424: PUSH
2425: LD_INT 1
2427: ST_TO_ADDR
// end else
2428: GO 2478
// if not Side_Positions [ 5 ] > 0 then
2430: LD_EXP 76
2434: PUSH
2435: LD_INT 5
2437: ARRAY
2438: PUSH
2439: LD_INT 0
2441: GREATER
2442: NOT
2443: IFFALSE 2455
// begin am = 4 end else
2445: LD_ADDR_EXP 7
2449: PUSH
2450: LD_INT 4
2452: ST_TO_ADDR
2453: GO 2478
// if not Side_Positions [ 7 ] > 0 then
2455: LD_EXP 76
2459: PUSH
2460: LD_INT 7
2462: ARRAY
2463: PUSH
2464: LD_INT 0
2466: GREATER
2467: NOT
2468: IFFALSE 2478
// begin am = 7 ;
2470: LD_ADDR_EXP 7
2474: PUSH
2475: LD_INT 7
2477: ST_TO_ADDR
// end ; init_map ;
2478: CALL 97 0 0
// set_shared_visions_and_alliances ;
2482: CALL 854 0 0
// Init_Win_Condition ;
2486: CALL 3046 0 0
// prepare_sides ;
2490: CALL 2232 0 0
// InitUC ;
2494: CALL_OW 18
// InitBC ;
2498: CALL_OW 21
// InitHC ;
2502: CALL_OW 19
// InitVC ;
2506: CALL_OW 20
// side_Neutral = 0 ;
2510: LD_ADDR_EXP 1
2514: PUSH
2515: LD_INT 0
2517: ST_TO_ADDR
// side_Am = am ;
2518: LD_ADDR_EXP 2
2522: PUSH
2523: LD_EXP 7
2527: ST_TO_ADDR
// setside ( amici , am ) ;
2528: LD_EXP 6
2532: PPUSH
2533: LD_EXP 7
2537: PPUSH
2538: CALL_OW 235
// init_difficulty ;
2542: CALL 3355 0 0
// init_pojazdy ;
2546: CALL 3647 0 0
// init_enter ;
2550: CALL 3769 0 0
// your_side := Player_Side ;
2554: LD_ADDR_OWVAR 2
2558: PUSH
2559: LD_EXP 72
2563: ST_TO_ADDR
// ResetFog ;
2564: CALL_OW 335
// prepare_specfog ;
2568: CALL 2331 0 0
// music_nat := Side_Nations [ your_side ] ;
2572: LD_ADDR_OWVAR 71
2576: PUSH
2577: LD_EXP 77
2581: PUSH
2582: LD_OWVAR 2
2586: ARRAY
2587: ST_TO_ADDR
// if IAMSpec then
2588: CALL_OW 531
2592: IFFALSE 2606
// CenterNowOnXY ( 104 , 69 ) else
2594: LD_INT 104
2596: PPUSH
2597: LD_INT 69
2599: PPUSH
2600: CALL_OW 86
2604: GO 2652
// CenterNowOnXY ( start_def [ Side_Positions [ your_side ] ] [ 1 ] , start_def [ Side_Positions [ your_side ] ] [ 2 ] ) ;
2606: LD_EXP 86
2610: PUSH
2611: LD_EXP 76
2615: PUSH
2616: LD_OWVAR 2
2620: ARRAY
2621: ARRAY
2622: PUSH
2623: LD_INT 1
2625: ARRAY
2626: PPUSH
2627: LD_EXP 86
2631: PUSH
2632: LD_EXP 76
2636: PUSH
2637: LD_OWVAR 2
2641: ARRAY
2642: ARRAY
2643: PUSH
2644: LD_INT 2
2646: ARRAY
2647: PPUSH
2648: CALL_OW 86
// zajistitstrany ;
2652: CALL 2661 0 0
// Anticheatcheck ;
2656: CALL_OW 514
// end ;
2660: END
// function zajistitstrany ; var z ; begin
2661: LD_INT 0
2663: PPUSH
2664: PPUSH
// for Z = 1 to 8 do
2665: LD_ADDR_VAR 0 2
2669: PUSH
2670: DOUBLE
2671: LD_INT 1
2673: DEC
2674: ST_TO_ADDR
2675: LD_INT 8
2677: PUSH
2678: FOR_TO
2679: IFFALSE 2709
// if Side_Positions [ z ] = 1 then
2681: LD_EXP 76
2685: PUSH
2686: LD_VAR 0 2
2690: ARRAY
2691: PUSH
2692: LD_INT 1
2694: EQUAL
2695: IFFALSE 2707
// begin side_1 = z ;
2697: LD_ADDR_EXP 4
2701: PUSH
2702: LD_VAR 0 2
2706: ST_TO_ADDR
// end ;
2707: GO 2678
2709: POP
2710: POP
// for Z = 1 to 8 do
2711: LD_ADDR_VAR 0 2
2715: PUSH
2716: DOUBLE
2717: LD_INT 1
2719: DEC
2720: ST_TO_ADDR
2721: LD_INT 8
2723: PUSH
2724: FOR_TO
2725: IFFALSE 2755
// if Side_Positions [ z ] = 2 then
2727: LD_EXP 76
2731: PUSH
2732: LD_VAR 0 2
2736: ARRAY
2737: PUSH
2738: LD_INT 2
2740: EQUAL
2741: IFFALSE 2753
// begin side_1 = z ;
2743: LD_ADDR_EXP 4
2747: PUSH
2748: LD_VAR 0 2
2752: ST_TO_ADDR
// end ;
2753: GO 2724
2755: POP
2756: POP
// end ; end_of_file
2757: LD_VAR 0 1
2761: RET
// every 10 do
2762: GO 2764
2764: DISABLE
// begin if not multiplayer then
2765: LD_OWVAR 4
2769: NOT
2770: IFFALSE 2774
// exit ;
2772: GO 2859
// if tick < 100 then
2774: LD_OWVAR 1
2778: PUSH
2779: LD_INT 100
2781: LESS
2782: IFFALSE 2802
// begin if tick mod 10 = 0 then
2784: LD_OWVAR 1
2788: PUSH
2789: LD_INT 10
2791: MOD
2792: PUSH
2793: LD_INT 0
2795: EQUAL
2796: IFFALSE 2802
// MultiplayerCRC ;
2798: CALL_OW 361
// end ; if ( tick >= 100 ) then
2802: LD_OWVAR 1
2806: PUSH
2807: LD_INT 100
2809: GREATEREQUAL
2810: IFFALSE 2830
// if tick mod 20 = 0 then
2812: LD_OWVAR 1
2816: PUSH
2817: LD_INT 20
2819: MOD
2820: PUSH
2821: LD_INT 0
2823: EQUAL
2824: IFFALSE 2830
// MultiplayerCRC ;
2826: CALL_OW 361
// if ( tick >= 100 ) then
2830: LD_OWVAR 1
2834: PUSH
2835: LD_INT 100
2837: GREATEREQUAL
2838: IFFALSE 2858
// if tick mod 30 = 0 then
2840: LD_OWVAR 1
2844: PUSH
2845: LD_INT 30
2847: MOD
2848: PUSH
2849: LD_INT 0
2851: EQUAL
2852: IFFALSE 2858
// DebugLogAll ;
2854: CALL_OW 360
// enable ;
2858: ENABLE
// end ;
2859: END
// every 2 2$0 do
2860: GO 2862
2862: DISABLE
// begin Anticheatcheck ;
2863: CALL_OW 514
// enable ;
2867: ENABLE
// end ; end_of_file
2868: END
// export clearedfog ; export function CanWinLoose ; begin
2869: LD_INT 0
2871: PPUSH
// Result := true ;
2872: LD_ADDR_VAR 0 1
2876: PUSH
2877: LD_INT 1
2879: ST_TO_ADDR
// if IAmServer and PlayerCount > 0 then
2880: CALL_OW 518
2884: PUSH
2885: CALL_OW 519
2889: PUSH
2890: LD_INT 0
2892: GREATER
2893: AND
2894: IFFALSE 2904
// Result := false ;
2896: LD_ADDR_VAR 0 1
2900: PUSH
2901: LD_INT 0
2903: ST_TO_ADDR
// if IAmSpec and PlayerCount > 1 then
2904: CALL_OW 531
2908: PUSH
2909: CALL_OW 519
2913: PUSH
2914: LD_INT 1
2916: GREATER
2917: AND
2918: IFFALSE 2928
// Result := false ;
2920: LD_ADDR_VAR 0 1
2924: PUSH
2925: LD_INT 0
2927: ST_TO_ADDR
// end ;
2928: LD_VAR 0 1
2932: RET
// every 0 0$5 trigger not FilterAllUnits ( [ [ f_side , am ] , [ f_or , [ f_type , unit_human ] , [ f_type , unit_building ] ] , [ f_alive ] ] ) do var win , i , best ;
2933: LD_INT 22
2935: PUSH
2936: LD_EXP 7
2940: PUSH
2941: EMPTY
2942: LIST
2943: LIST
2944: PUSH
2945: LD_INT 2
2947: PUSH
2948: LD_INT 21
2950: PUSH
2951: LD_INT 1
2953: PUSH
2954: EMPTY
2955: LIST
2956: LIST
2957: PUSH
2958: LD_INT 21
2960: PUSH
2961: LD_INT 3
2963: PUSH
2964: EMPTY
2965: LIST
2966: LIST
2967: PUSH
2968: EMPTY
2969: LIST
2970: LIST
2971: LIST
2972: PUSH
2973: LD_INT 51
2975: PUSH
2976: EMPTY
2977: LIST
2978: PUSH
2979: EMPTY
2980: LIST
2981: LIST
2982: LIST
2983: PPUSH
2984: CALL_OW 69
2988: NOT
2989: IFFALSE 3043
2991: GO 2993
2993: DISABLE
2994: LD_INT 0
2996: PPUSH
2997: PPUSH
2998: PPUSH
// begin if CanWinLoose then
2999: CALL 2869 0 0
3003: IFFALSE 3037
// if GetMultiScore ( i ) > best then
3005: LD_VAR 0 2
3009: PPUSH
3010: CALL_OW 507
3014: PUSH
3015: LD_VAR 0 3
3019: GREATER
3020: IFFALSE 3037
// best := GetMultiScore ( i ) ;
3022: LD_ADDR_VAR 0 3
3026: PUSH
3027: LD_VAR 0 2
3031: PPUSH
3032: CALL_OW 507
3036: ST_TO_ADDR
// youwininmultiplayer ;
3037: CALL_OW 106
// exit ;
3041: GO 3043
// end ;
3043: PPOPN 3
3045: END
// export function Init_Win_Condition ; begin
3046: LD_INT 0
3048: PPUSH
// enable ( 99 ) ;
3049: LD_INT 99
3051: ENABLE_MARKED
// end ;
3052: LD_VAR 0 1
3056: RET
// every 0 0$5 trigger not FilterAllUnits ( [ [ f_side , your_side ] , [ f_type , unit_human ] , [ f_alive ] ] ) do var win , i , best ;
3057: LD_INT 22
3059: PUSH
3060: LD_OWVAR 2
3064: PUSH
3065: EMPTY
3066: LIST
3067: LIST
3068: PUSH
3069: LD_INT 21
3071: PUSH
3072: LD_INT 1
3074: PUSH
3075: EMPTY
3076: LIST
3077: LIST
3078: PUSH
3079: LD_INT 51
3081: PUSH
3082: EMPTY
3083: LIST
3084: PUSH
3085: EMPTY
3086: LIST
3087: LIST
3088: LIST
3089: PPUSH
3090: CALL_OW 69
3094: NOT
3095: IFFALSE 3149
3097: GO 3099
3099: DISABLE
3100: LD_INT 0
3102: PPUSH
3103: PPUSH
3104: PPUSH
// begin if CanWinLoose then
3105: CALL 2869 0 0
3109: IFFALSE 3143
// if GetMultiScore ( i ) > best then
3111: LD_VAR 0 2
3115: PPUSH
3116: CALL_OW 507
3120: PUSH
3121: LD_VAR 0 3
3125: GREATER
3126: IFFALSE 3143
// best := GetMultiScore ( i ) ;
3128: LD_ADDR_VAR 0 3
3132: PUSH
3133: LD_VAR 0 2
3137: PPUSH
3138: CALL_OW 507
3142: ST_TO_ADDR
// YouLostInMultiplayer ;
3143: CALL_OW 107
// exit ;
3147: GO 3149
// end ; end_of_file
3149: PPOPN 3
3151: END
// export function DisplayNames ; var i ; begin
3152: LD_INT 0
3154: PPUSH
3155: PPUSH
// for i in FilterAllUnits ( [ f_or , [ f_btype , b_depot ] , [ f_btype , b_warehouse ] ] ) do
3156: LD_ADDR_VAR 0 2
3160: PUSH
3161: LD_INT 2
3163: PUSH
3164: LD_INT 30
3166: PUSH
3167: LD_INT 0
3169: PUSH
3170: EMPTY
3171: LIST
3172: LIST
3173: PUSH
3174: LD_INT 30
3176: PUSH
3177: LD_INT 1
3179: PUSH
3180: EMPTY
3181: LIST
3182: LIST
3183: PUSH
3184: EMPTY
3185: LIST
3186: LIST
3187: LIST
3188: PPUSH
3189: CALL_OW 69
3193: PUSH
3194: FOR_IN
3195: IFFALSE 3222
// SetBName ( i , @ & GetSide ( i ) ) ;
3197: LD_VAR 0 2
3201: PPUSH
3202: LD_STRING @
3204: PUSH
3205: LD_VAR 0 2
3209: PPUSH
3210: CALL_OW 255
3214: STR
3215: PPUSH
3216: CALL_OW 500
3220: GO 3194
3222: POP
3223: POP
// setbname ( magazyn , Kair ) ;
3224: LD_INT 28
3226: PPUSH
3227: LD_STRING Kair
3229: PPUSH
3230: CALL_OW 500
// end ;
3234: LD_VAR 0 1
3238: RET
// export function DisplayNames2 ; var j ; begin
3239: LD_INT 0
3241: PPUSH
3242: PPUSH
// for j in FilterAllUnits ( [ f_or , [ f_btype , b_depot ] , [ f_btype , b_warehouse ] ] ) do
3243: LD_ADDR_VAR 0 2
3247: PUSH
3248: LD_INT 2
3250: PUSH
3251: LD_INT 30
3253: PUSH
3254: LD_INT 0
3256: PUSH
3257: EMPTY
3258: LIST
3259: LIST
3260: PUSH
3261: LD_INT 30
3263: PUSH
3264: LD_INT 1
3266: PUSH
3267: EMPTY
3268: LIST
3269: LIST
3270: PUSH
3271: EMPTY
3272: LIST
3273: LIST
3274: LIST
3275: PPUSH
3276: CALL_OW 69
3280: PUSH
3281: FOR_IN
3282: IFFALSE 3309
// SetBName ( j , @ & GetSide ( j ) ) ;
3284: LD_VAR 0 2
3288: PPUSH
3289: LD_STRING @
3291: PUSH
3292: LD_VAR 0 2
3296: PPUSH
3297: CALL_OW 255
3301: STR
3302: PPUSH
3303: CALL_OW 500
3307: GO 3281
3309: POP
3310: POP
// setbname ( magazyn2 , Aleksandria ) ;
3311: LD_INT 4
3313: PPUSH
3314: LD_STRING Aleksandria
3316: PPUSH
3317: CALL_OW 500
// end ;
3321: LD_VAR 0 1
3325: RET
// every 0 0$2 do
3326: GO 3328
3328: DISABLE
// DisplayNames ;
3329: CALL 3152 0 0
3333: END
// on BuildingComplete ( b ) do DisplayNames ;
3334: CALL 3152 0 0
3338: PPOPN 1
3340: END
// on BuildingStarted ( b , h ) do DisplayNames ;
3341: CALL 3152 0 0
3345: PPOPN 2
3347: END
// on BuildingCaptured ( b , o , e ) do DisplayNames ; end_of_file
3348: CALL 3152 0 0
3352: PPOPN 3
3354: END
// export dif_BednyStart , dif_BednyRZ , dif_BednyRV ; export dif_CekamJMM , dif_JMMDoprovodPocet ; export dif_UtokSkupina , dif_PrvniUtok , dif_CasovacUtoku ; export dif_ArtefaktDoba ; export function init_difficulty ; begin
3355: LD_INT 0
3357: PPUSH
// dif_BednyRZ = [ 40 , 30 , 20 , 15 ] ;
3358: LD_ADDR_EXP 94
3362: PUSH
3363: LD_INT 40
3365: PUSH
3366: LD_INT 30
3368: PUSH
3369: LD_INT 20
3371: PUSH
3372: LD_INT 15
3374: PUSH
3375: EMPTY
3376: LIST
3377: LIST
3378: LIST
3379: LIST
3380: ST_TO_ADDR
// dif_BednyRV = [ 40 , 30 , 20 , 15 ] ;
3381: LD_ADDR_EXP 95
3385: PUSH
3386: LD_INT 40
3388: PUSH
3389: LD_INT 30
3391: PUSH
3392: LD_INT 20
3394: PUSH
3395: LD_INT 15
3397: PUSH
3398: EMPTY
3399: LIST
3400: LIST
3401: LIST
3402: LIST
3403: ST_TO_ADDR
// dif_BednyStart = [ 20 , 15 , 10 , 5 ] ;
3404: LD_ADDR_EXP 93
3408: PUSH
3409: LD_INT 20
3411: PUSH
3412: LD_INT 15
3414: PUSH
3415: LD_INT 10
3417: PUSH
3418: LD_INT 5
3420: PUSH
3421: EMPTY
3422: LIST
3423: LIST
3424: LIST
3425: LIST
3426: ST_TO_ADDR
// dif_CekamJMM = [ [ 30 30$0 , 30 30$0 ] , [ 28 28$0 , 28 28$0 ] , [ 26 26$0 , 26 26$0 ] , [ 24 24$0 , 24 24$0 ] ] ;
3427: LD_ADDR_EXP 96
3431: PUSH
3432: LD_INT 63000
3434: PUSH
3435: LD_INT 63000
3437: PUSH
3438: EMPTY
3439: LIST
3440: LIST
3441: PUSH
3442: LD_INT 58800
3444: PUSH
3445: LD_INT 58800
3447: PUSH
3448: EMPTY
3449: LIST
3450: LIST
3451: PUSH
3452: LD_INT 54600
3454: PUSH
3455: LD_INT 54600
3457: PUSH
3458: EMPTY
3459: LIST
3460: LIST
3461: PUSH
3462: LD_INT 50400
3464: PUSH
3465: LD_INT 50400
3467: PUSH
3468: EMPTY
3469: LIST
3470: LIST
3471: PUSH
3472: EMPTY
3473: LIST
3474: LIST
3475: LIST
3476: LIST
3477: ST_TO_ADDR
// dif_JMMDoprovodPocet = [ 5 , 8 , 11 , 15 ] ;
3478: LD_ADDR_EXP 97
3482: PUSH
3483: LD_INT 5
3485: PUSH
3486: LD_INT 8
3488: PUSH
3489: LD_INT 11
3491: PUSH
3492: LD_INT 15
3494: PUSH
3495: EMPTY
3496: LIST
3497: LIST
3498: LIST
3499: LIST
3500: ST_TO_ADDR
// dif_UtokSkupina = [ 3 , 4 , 6 , 8 ] ;
3501: LD_ADDR_EXP 98
3505: PUSH
3506: LD_INT 3
3508: PUSH
3509: LD_INT 4
3511: PUSH
3512: LD_INT 6
3514: PUSH
3515: LD_INT 8
3517: PUSH
3518: EMPTY
3519: LIST
3520: LIST
3521: LIST
3522: LIST
3523: ST_TO_ADDR
// dif_PrvniUtok = [ [ 6 , 8 ] , [ 4 , 5 ] , [ 3 , 7 ] , [ 2 , 9 ] ] ;
3524: LD_ADDR_EXP 99
3528: PUSH
3529: LD_INT 6
3531: PUSH
3532: LD_INT 8
3534: PUSH
3535: EMPTY
3536: LIST
3537: LIST
3538: PUSH
3539: LD_INT 4
3541: PUSH
3542: LD_INT 5
3544: PUSH
3545: EMPTY
3546: LIST
3547: LIST
3548: PUSH
3549: LD_INT 3
3551: PUSH
3552: LD_INT 7
3554: PUSH
3555: EMPTY
3556: LIST
3557: LIST
3558: PUSH
3559: LD_INT 2
3561: PUSH
3562: LD_INT 9
3564: PUSH
3565: EMPTY
3566: LIST
3567: LIST
3568: PUSH
3569: EMPTY
3570: LIST
3571: LIST
3572: LIST
3573: LIST
3574: ST_TO_ADDR
// dif_CasovacUtoku = [ [ 10 , 8 ] , [ 8 , 8 , 7 ] , [ 6 , 5 , 5 ] , [ 4 , 3 , 3 , 5 ] ] ;
3575: LD_ADDR_EXP 100
3579: PUSH
3580: LD_INT 10
3582: PUSH
3583: LD_INT 8
3585: PUSH
3586: EMPTY
3587: LIST
3588: LIST
3589: PUSH
3590: LD_INT 8
3592: PUSH
3593: LD_INT 8
3595: PUSH
3596: LD_INT 7
3598: PUSH
3599: EMPTY
3600: LIST
3601: LIST
3602: LIST
3603: PUSH
3604: LD_INT 6
3606: PUSH
3607: LD_INT 5
3609: PUSH
3610: LD_INT 5
3612: PUSH
3613: EMPTY
3614: LIST
3615: LIST
3616: LIST
3617: PUSH
3618: LD_INT 4
3620: PUSH
3621: LD_INT 3
3623: PUSH
3624: LD_INT 3
3626: PUSH
3627: LD_INT 5
3629: PUSH
3630: EMPTY
3631: LIST
3632: LIST
3633: LIST
3634: LIST
3635: PUSH
3636: EMPTY
3637: LIST
3638: LIST
3639: LIST
3640: LIST
3641: ST_TO_ADDR
// end ; end_of_file
3642: LD_VAR 0 1
3646: RET
// export function init_pojazdy ; begin
3647: LD_INT 0
3649: PPUSH
// ComConstruct ( faba2 , ar_half_tracked , engine_combustion , control_apeman , ar_gun ) ;
3650: LD_INT 110
3652: PPUSH
3653: LD_INT 14
3655: PPUSH
3656: LD_INT 1
3658: PPUSH
3659: LD_INT 5
3661: PPUSH
3662: LD_INT 27
3664: PPUSH
3665: CALL_OW 125
// AddComConstruct ( faba2 , ar_half_tracked , engine_combustion , control_apeman , ar_gun ) ;
3669: LD_INT 110
3671: PPUSH
3672: LD_INT 14
3674: PPUSH
3675: LD_INT 1
3677: PPUSH
3678: LD_INT 5
3680: PPUSH
3681: LD_INT 27
3683: PPUSH
3684: CALL_OW 185
// AddComConstruct ( faba2 , ar_half_tracked , engine_combustion , control_manual , ar_gun ) ;
3688: LD_INT 110
3690: PPUSH
3691: LD_INT 14
3693: PPUSH
3694: LD_INT 1
3696: PPUSH
3697: LD_INT 1
3699: PPUSH
3700: LD_INT 27
3702: PPUSH
3703: CALL_OW 185
// AddComConstruct ( faba2 , ar_half_tracked , engine_combustion , control_manual , ar_gun ) ;
3707: LD_INT 110
3709: PPUSH
3710: LD_INT 14
3712: PPUSH
3713: LD_INT 1
3715: PPUSH
3716: LD_INT 1
3718: PPUSH
3719: LD_INT 27
3721: PPUSH
3722: CALL_OW 185
// AddComConstruct ( faba2 , ar_half_tracked , engine_combustion , control_manual , ar_gun ) ;
3726: LD_INT 110
3728: PPUSH
3729: LD_INT 14
3731: PPUSH
3732: LD_INT 1
3734: PPUSH
3735: LD_INT 1
3737: PPUSH
3738: LD_INT 27
3740: PPUSH
3741: CALL_OW 185
// AddComConstruct ( faba2 , ar_half_tracked , engine_combustion , control_manual , ar_gun ) ;
3745: LD_INT 110
3747: PPUSH
3748: LD_INT 14
3750: PPUSH
3751: LD_INT 1
3753: PPUSH
3754: LD_INT 1
3756: PPUSH
3757: LD_INT 27
3759: PPUSH
3760: CALL_OW 185
// end ; end_of_file
3764: LD_VAR 0 1
3768: RET
// export function init_enter ; begin
3769: LD_INT 0
3771: PPUSH
// ComEnterUnit ( [ mech1 , mech2 , mech3 , mech4 ] , faba2 ) ;
3772: LD_INT 80
3774: PUSH
3775: LD_INT 81
3777: PUSH
3778: LD_INT 246
3780: PUSH
3781: LD_INT 247
3783: PUSH
3784: EMPTY
3785: LIST
3786: LIST
3787: LIST
3788: LIST
3789: PPUSH
3790: LD_INT 110
3792: PPUSH
3793: CALL_OW 120
// ComEnterUnit ( [ malp1 , malp2 ] , faba2 ) ;
3797: LD_INT 338
3799: PUSH
3800: LD_INT 339
3802: PUSH
3803: EMPTY
3804: LIST
3805: LIST
3806: PPUSH
3807: LD_INT 110
3809: PPUSH
3810: CALL_OW 120
// ComEnterUnit ( zol1 , bun1 ) ;
3814: LD_INT 101
3816: PPUSH
3817: LD_INT 31
3819: PPUSH
3820: CALL_OW 120
// ComEnterUnit ( zol2 , bun2 ) ;
3824: LD_INT 134
3826: PPUSH
3827: LD_INT 43
3829: PPUSH
3830: CALL_OW 120
// ComEnterUnit ( zol3 , bun3 ) ;
3834: LD_INT 135
3836: PPUSH
3837: LD_INT 30
3839: PPUSH
3840: CALL_OW 120
// ComEnterUnit ( zol4 , bun4 ) ;
3844: LD_INT 147
3846: PPUSH
3847: LD_INT 137
3849: PPUSH
3850: CALL_OW 120
// ComEnterUnit ( zol5 , bun5 ) ;
3854: LD_INT 148
3856: PPUSH
3857: LD_INT 138
3859: PPUSH
3860: CALL_OW 120
// ComEnterUnit ( zol6 , bun6 ) ;
3864: LD_INT 164
3866: PPUSH
3867: LD_INT 155
3869: PPUSH
3870: CALL_OW 120
// ComEnterUnit ( zol7 , bun7 ) ;
3874: LD_INT 165
3876: PPUSH
3877: LD_INT 157
3879: PPUSH
3880: CALL_OW 120
// ComEnterUnit ( mech5 , auto1 ) ;
3884: LD_INT 351
3886: PPUSH
3887: LD_INT 105
3889: PPUSH
3890: CALL_OW 120
// ComEnterUnit ( [ sci1 , sci2 , sci3 ] , lab1 ) ;
3894: LD_INT 74
3896: PUSH
3897: LD_INT 87
3899: PUSH
3900: LD_INT 65
3902: PUSH
3903: EMPTY
3904: LIST
3905: LIST
3906: LIST
3907: PPUSH
3908: LD_INT 15
3910: PPUSH
3911: CALL_OW 120
// ComEnterUnit ( g1 , ga1 ) ;
3915: LD_INT 69
3917: PPUSH
3918: LD_INT 8
3920: PPUSH
3921: CALL_OW 120
// ComEnterUnit ( g2 , ga2 ) ;
3925: LD_INT 72
3927: PPUSH
3928: LD_INT 11
3930: PPUSH
3931: CALL_OW 120
// ComEnterUnit ( g3 , ga3 ) ;
3935: LD_INT 75
3937: PPUSH
3938: LD_INT 10
3940: PPUSH
3941: CALL_OW 120
// ComEnterUnit ( g4 , ga4 ) ;
3945: LD_INT 77
3947: PPUSH
3948: LD_INT 237
3950: PPUSH
3951: CALL_OW 120
// ComEnterUnit ( g5 , ga5 ) ;
3955: LD_INT 76
3957: PPUSH
3958: LD_INT 7
3960: PPUSH
3961: CALL_OW 120
// ComEnterUnit ( g6 , ga6 ) ;
3965: LD_INT 68
3967: PPUSH
3968: LD_INT 9
3970: PPUSH
3971: CALL_OW 120
// ComEnterUnit ( [ g7 , g8 ] , koszary2 ) ;
3975: LD_INT 73
3977: PUSH
3978: LD_INT 315
3980: PUSH
3981: EMPTY
3982: LIST
3983: LIST
3984: PPUSH
3985: LD_INT 14
3987: PPUSH
3988: CALL_OW 120
// ComEnterUnit ( soldat1 , tower1 ) ;
3992: LD_INT 365
3994: PPUSH
3995: LD_INT 360
3997: PPUSH
3998: CALL_OW 120
// ComEnterUnit ( soldat2 , tower2 ) ;
4002: LD_INT 364
4004: PPUSH
4005: LD_INT 361
4007: PPUSH
4008: CALL_OW 120
// ComPlaceRemoteCharge ( min1 , 129 , 104 , 0 ) ;
4012: LD_INT 177
4014: PPUSH
4015: LD_INT 129
4017: PPUSH
4018: LD_INT 104
4020: PPUSH
4021: LD_INT 0
4023: PPUSH
4024: CALL_OW 133
// ComPlaceRemoteCharge ( min2 , 124 , 101 , 0 ) ;
4028: LD_INT 179
4030: PPUSH
4031: LD_INT 124
4033: PPUSH
4034: LD_INT 101
4036: PPUSH
4037: LD_INT 0
4039: PPUSH
4040: CALL_OW 133
// Wait ( 0 0$30 ) ;
4044: LD_INT 1050
4046: PPUSH
4047: CALL_OW 67
// ComAgressiveMove ( auto1 , 84 , 149 ) ;
4051: LD_INT 105
4053: PPUSH
4054: LD_INT 84
4056: PPUSH
4057: LD_INT 149
4059: PPUSH
4060: CALL_OW 114
// Wait ( 1 1$0 ) ;
4064: LD_INT 2100
4066: PPUSH
4067: CALL_OW 67
// ComEnterUnit ( [ moz1 , moz2 , moz3 , moz4 ] , koszary ) ;
4071: LD_INT 149
4073: PUSH
4074: LD_INT 150
4076: PUSH
4077: LD_INT 151
4079: PUSH
4080: LD_INT 152
4082: PUSH
4083: EMPTY
4084: LIST
4085: LIST
4086: LIST
4087: LIST
4088: PPUSH
4089: LD_INT 153
4091: PPUSH
4092: CALL_OW 120
// ComEnterUnit ( s1 , s2 ) ;
4096: LD_INT 188
4098: PPUSH
4099: LD_INT 187
4101: PPUSH
4102: CALL_OW 120
// ComEnterUnit ( [ q1 , q2 , q3 , q4 , q5 , q6 ] , koszary3 ) ;
4106: LD_INT 320
4108: PUSH
4109: LD_INT 321
4111: PUSH
4112: LD_INT 322
4114: PUSH
4115: LD_INT 323
4117: PUSH
4118: LD_INT 324
4120: PUSH
4121: LD_INT 325
4123: PUSH
4124: EMPTY
4125: LIST
4126: LIST
4127: LIST
4128: LIST
4129: LIST
4130: LIST
4131: PPUSH
4132: LD_INT 318
4134: PPUSH
4135: CALL_OW 120
// ComMoveXY ( [ min1 , min2 ] , 155 , 90 ) ;
4139: LD_INT 177
4141: PUSH
4142: LD_INT 179
4144: PUSH
4145: EMPTY
4146: LIST
4147: LIST
4148: PPUSH
4149: LD_INT 155
4151: PPUSH
4152: LD_INT 90
4154: PPUSH
4155: CALL_OW 111
// Wait ( 6 6$30 ) ;
4159: LD_INT 13650
4161: PPUSH
4162: CALL_OW 67
// ComAgressiveMove ( [ bo1 , bo2 , bo3 , bo4 , bo5 , bo6 ] , 115 , 128 ) ;
4166: LD_INT 390
4168: PUSH
4169: LD_INT 391
4171: PUSH
4172: LD_INT 392
4174: PUSH
4175: LD_INT 393
4177: PUSH
4178: LD_INT 394
4180: PUSH
4181: LD_INT 395
4183: PUSH
4184: EMPTY
4185: LIST
4186: LIST
4187: LIST
4188: LIST
4189: LIST
4190: LIST
4191: PPUSH
4192: LD_INT 115
4194: PPUSH
4195: LD_INT 128
4197: PPUSH
4198: CALL_OW 114
// Wait ( 15 15$0 ) ;
4202: LD_INT 31500
4204: PPUSH
4205: CALL_OW 67
// ComAgressiveMove ( [ y1 , y2 , y3 ] , 120 , 130 ) ;
4209: LD_INT 273
4211: PUSH
4212: LD_INT 272
4214: PUSH
4215: LD_INT 271
4217: PUSH
4218: EMPTY
4219: LIST
4220: LIST
4221: LIST
4222: PPUSH
4223: LD_INT 120
4225: PPUSH
4226: LD_INT 130
4228: PPUSH
4229: CALL_OW 114
// ComAgressiveMove ( [ y4 , y5 , y6 , y7 , y8 ] , 120 , 131 ) ;
4233: LD_INT 274
4235: PUSH
4236: LD_INT 276
4238: PUSH
4239: LD_INT 277
4241: PUSH
4242: LD_INT 275
4244: PUSH
4245: LD_INT 285
4247: PUSH
4248: EMPTY
4249: LIST
4250: LIST
4251: LIST
4252: LIST
4253: LIST
4254: PPUSH
4255: LD_INT 120
4257: PPUSH
4258: LD_INT 131
4260: PPUSH
4261: CALL_OW 114
// end ;
4265: LD_VAR 0 1
4269: RET
